Video data is typically composed of a series of still images which are shown rapidly in succession as a video sequence to give the idea of a moving image. Video applications are continuously moving towards higher and higher resolution. A large quantity of video material is distributed in digital form over broadcast channels, digital networks and packaged media, with a continuous evolution towards higher quality and resolution (e.g. higher number of pixels per frame, higher frame rate, higher bit-depth or extended colour gamut). This technological evolution puts higher pressure on the distribution networks that are already facing difficulties in bringing HDTV resolution and high data rates economically to the end user.
Video coding techniques typically use spatial and temporal redundancies of images in order to generate data bit streams of reduced size compared with the video sequences. Spatial prediction techniques (also referred to as Intra coding) exploit the mutual correlation between neighbouring image pixels, while temporal prediction techniques (also referred to as INTER coding) exploit the correlation between images of sequential images. Such compression techniques render the transmission and/or storage of the video sequences more effective since they reduce the capacity required of a transfer network, or storage device, to transmit or store the bit-stream code.
An original video sequence to be encoded or decoded generally comprises a succession of digital images which may be represented by one or more matrices the coefficients of which represent pixels. An encoding device is used to code the video images, with an associated decoding device being available to reconstruct the bit stream for display and viewing.
Common standardized approaches have been adopted for the format and method of the coding process. One of the more recent standards is HEVC, in which a video image is partitioned into smaller portions of pixels known as Coding Units (sometimes referred to as macroblocks or blocks of pixels). The coding units can be partitioned and adjusted according to the characteristics of the original image segment under consideration. This allows more detailed coding of areas of the video image which contain relatively more information and less coding effort for those areas with fewer features.
Scalable Video Coding (SVC) is another standardized approach in which a video image is split into image portions (often referred to as macroblocks or blocks of pixels) and is treated as being comprised of hierarchical layers. The hierarchical layers include a base layer, corresponding to lower quality images (or frames) of the original video sequence, and one or more enhancement layers (also known as refinement layers) providing better quality, spatial and/or temporal enhancement images compared to base layer images.
Both encoding and decoding processes involve a decoding process of an encoded image. This process is typically performed at the encoder side for the purpose of future motion estimation which enables an encoder and a corresponding decoder to have the same reference frames.
A filtering process may be applied to the encoded image to improve the visual quality of the image as well as the motion compensation of subsequent frames. In the current HEVC standard, loop filters which are employed include: a deblocking filter and a sample adaptive offset (SAO).
SAO filtering enables correction of the pixels of a class of pixels by adding the same integer value to each pixel of the class. In the current SAO applied in HEVC, pixel classification is determined according to the type of SAO: Edge Offset type or Band Offset type. In addition, the Edge Offset class enables the edges form of a SAO partition to be identified according to a given direction. The Band Offset splits the range of pixel values into bands of pixel. Each band contains four classes. The encoder selects the best integer offset value for each class. The offset values are then inserted in the bitstream for each SAO partition.
Improved forms of classification are required to improve the efficiency and quality of encoding and decoding process.